
<!DOCTYPE html>

<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

    <title>Pipeline Design &#8212; LAVA 2024.05 documentation</title>
    <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
    <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
    <script src="_static/jquery.js"></script>
    <script src="_static/underscore.js"></script>
    <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
    <script src="_static/doctools.js"></script>
    <script src="_static/sphinx_highlight.js"></script>
    <link rel="shortcut icon" href="_static/favicon.ico"/>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="Lava Dispatcher Design" href="dispatcher-design.html" />
    <link rel="prev" title="LAVA development" href="development.html" />
    <link rel="canonical" href="https://docs.lavasoftware.org/lava/pipeline-design.html" />
  
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
<meta name="apple-mobile-web-app-capable" content="yes">
<script type="text/javascript" src="_static/js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="_static/js/jquery-fix.js"></script>
<script type="text/javascript" src="_static/bootstrap-3.4.1/js/bootstrap.min.js"></script>
<script type="text/javascript" src="_static/bootstrap-sphinx.js"></script>


  </head><body>

  <div id="navbar" class="navbar navbar-default navbar-fixed-top">
    <div class="container">
      <div class="navbar-header">
        <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="index.html"><span><img src="_static/lava.png"></span>
          LAVA</a>
        <span class="navbar-text navbar-version pull-left"><b>2024.05</b></span>
      </div>

        <div class="collapse navbar-collapse nav-collapse">
          <ul class="nav navbar-nav">
            
                <li><a href="genindex.html">Index</a></li>
                <li><a href="contents.html">Contents</a></li>
            
            
              <li class="dropdown globaltoc-container">
  <a role="button"
     id="dLabelGlobalToc"
     data-toggle="dropdown"
     data-target="#"
     href="index.html">Site <b class="caret"></b></a>
  <ul class="dropdown-menu globaltoc"
      role="menu"
      aria-labelledby="dLabelGlobalToc"><ul class="current">
<li class="toctree-l1"><a class="reference internal" href="index.html">Introduction to LAVA</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="contents.html">Contents</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary of terms</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="support.html">Getting support</a></li>
</ul>
</ul>
</li>
              
                <li class="dropdown">
  <a role="button"
     id="dLabelLocalToc"
     data-toggle="dropdown"
     data-target="#"
     href="#">Page <b class="caret"></b></a>
  <ul class="dropdown-menu localtoc"
      role="menu"
      aria-labelledby="dLabelLocalToc"><ul>
<li><a class="reference internal" href="#">Pipeline Design</a><ul>
<li><a class="reference internal" href="#principles-of-the-lava-design">Principles of the LAVA design</a><ul>
<li><a class="reference internal" href="#test-writer-aspects">Test Writer aspects</a></li>
<li><a class="reference internal" href="#administrator-aspects">Administrator aspects</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</ul>
</li>
              
            
            
              
                
  <li>
    <a href="development.html" title="Previous Chapter: LAVA development"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">&laquo; LAVA development</span>
    </a>
  </li>
  <li>
    <a href="dispatcher-design.html" title="Next Chapter: Lava Dispatcher Design"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Lava Dispatch... &raquo;</span>
    </a>
  </li>
              
            
            
            
            
              <li class="hidden-sm"></li>
            
          </ul>

          
            
<form class="navbar-form navbar-right" action="search.html" method="get">
 <div class="form-group">
  <input type="text" name="q" class="form-control" placeholder="Search" />
 </div>
  <input type="hidden" name="check_keywords" value="yes" />
  <input type="hidden" name="area" value="default" />
</form>
          
        </div>
    </div>
  </div>

<div class="container">
  <div class="row">
    <div class="body col-md-12 content" role="main">
      
  <section id="pipeline-design">
<span id="index-0"></span><span id="id1"></span><h1>Pipeline Design<a class="headerlink" href="#pipeline-design" title="Permalink to this heading">¶</a></h1>
<section id="principles-of-the-lava-design">
<h2>Principles of the LAVA design<a class="headerlink" href="#principles-of-the-lava-design" title="Permalink to this heading">¶</a></h2>
<section id="test-writer-aspects">
<h3>Test Writer aspects<a class="headerlink" href="#test-writer-aspects" title="Permalink to this heading">¶</a></h3>
<ul>
<li><p><strong>Fail early</strong> - full validation of the pipeline built for each test job
before the job starts to run.</p></li>
<li><p><strong>Clearer error handling</strong> - distinguishing between an error in the test, the
job or a problem in the code or the instance hardware.</p></li>
<li><p><strong>Explicit details</strong> - no guesswork based on filename extensions or
convention. The test writer <strong>must</strong> specify the compression methods and
other aspects of all files to be handled by LAVA.</p></li>
<li><p><strong>Live results</strong> - results are logged as the test job runs, so if the test
fails, the device hangs or the job is interrupted, all results logged prior
to that point remain available.</p></li>
<li><p><strong>Give more control to test writers</strong> - once the test job has got to a
successful login, the rest of the test job operations are under the full
control of the test writer. This includes launching virtual machines on the
device. The V2 design provides methods to assist with running tests on
devices or virtual machines but is designed to avoid imposing requirements
other than those necessary for automation.</p></li>
<li><p><strong>Simpler access to data</strong> - all results are related directly to the test job
and can be downloaded just by knowing the job ID.</p></li>
<li><p><strong>Push notifications</strong> - removing the need to poll to get status.
Notifications can include a comparison of results against similar jobs which
have already completed on the same instance.</p>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="user-notifications.html#notifications"><span class="std std-ref">User notifications in LAVA</span></a>, <a class="reference internal" href="data-export.html#publishing-events"><span class="std std-ref">Event notifications</span></a> and
<a class="reference internal" href="publishing-artifacts.html#publishing-artifacts"><span class="std std-ref">Publishing artifacts</span></a></p>
</div>
</li>
</ul>
</section>
<section id="administrator-aspects">
<h3>Administrator aspects<a class="headerlink" href="#administrator-aspects" title="Permalink to this heading">¶</a></h3>
<ul class="simple">
<li><p><strong>Simpler communications</strong> - just one fault-tolerant connection between the
master and the worker(s) using HTTP/HTTPS.</p></li>
<li><p><strong>Simpler configuration</strong> - all configuration is on the one master, the
workers only need to update the base system packages as a standard admin
task.</p></li>
</ul>
</section>
</section>
</section>


    </div>
      
  </div>
</div>
<footer class="footer">
  <div class="container">
    <p class="pull-right">
      <a href="#">Back to top</a>
      
    </p>
    <p>
        &copy; Copyright 2010-2019, Linaro Limited.<br/>
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
    </p>
  </div>
</footer>
  </body>
</html>